[% setvar title Perl6 Summary for the week ending 20020804 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='Perl6 Summary for the week ending 20020804'></a><h1>Perl6 Summary for the week ending 20020804</h1>
<p>Back on the regular schedule complete with new and improved article
links via those lovely people at Google groups. Hopefully we'll be
staying on this schedule for the foreseeable future.</p>
<p>As usual, we'll kick off with perl6-internals, which was, once again,
the busiest group this week.</p>
<a name='We need more ops'></a><h2>We need more ops</h2>
<p>This thread rumbled on (slowly) with a mixture of serious and
humorous messages. Melvin Smith worried that parrot would turn into
&quot;a Linux kernel and forever accumulates custom ops, PMCs.&quot;.</p>
<p>The appropriately named Eric Kidder proposed ':-) the Positivity
operator. Nobody threw peanuts.</p>
<p><a href='http://groups.google.com/groups?selm=OF2F640760.61E2BEAB-ON85256C06.00629F21@boulder.ibm.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=Pine.LNX.4.33.0207291440190.31214-100000@persian.evilkitten.org' target='_blank'>groups.google.com</a></p>
<a name='of Mops, JIT and perl6'></a><h2>of Mops, JIT and perl6</h2>
<p>This thread kicked off the week before, but carried on into this
week. Leopold Toetsch had got some MOPS numbers for various bits of
parrot, including the perl6 mini language. Dan wondered if the perl6
numbers included the time to generate the assembly and assemble it,
because the assembler is 'rather slow'. Sean reckoned that, compared
to the parser, the assembler was quick and that he suspects that even
without that the perl6 numbers &quot;would suck, since the compiler does
some pretty heavy pessimization.&quot; Melvin Smith reckoned that imcc may
have had something to do with the slowness as well, because it didn't
do the right thing with loop invariants, but that &quot;Things can only get
better&quot;.</p>
<p>Leopold then told us that the numbers were pure runtime and that the
compilation phase added 2.3 seconds to the whole
process. Ick. However, following a bugfix to perlarray.pmc he posted
new numbers that were &quot;not that abysmal&quot;, and that we already have the
same MOPS as perl5...</p>
<p><a href='http://groups.google.com/groups?selm=3D43AEF1.5070203@toetsch.at' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=Pine.GSO.4.33.0207291943160.11486-100000@beowulf.ucsd.edu' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=3D464CEA.3040407@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Dan Sugalski is back'></a><h2>Dan Sugalski is back</h2>
<p>And it's like he never went away. At the top of his list is catching
up with his mail, sorting out keys, defining the extension mechanism,
the exception infrastructure, ruthless efficiency and a fanatical
devotion to the Pope.</p>
<p>He also suggested that if someone were to implement the <code>cmpi</code> and
<code>cmps</code> ops for integer and string comparison, then that would be a
good thing. Sean O'Rourke asked a bunch of questions about that, and
the semantics of <code>2 &lt; $i++ &lt; 23</code> were discussed</p>
<p><a href='http://groups.google.com/groups?selm=a05111b0ab96b50e9cb64@' target='_blank'>groups.google.com</a>[192.168.0.190] -- Start here.</p>
<a name='Regex speedup'></a><h2>Regex speedup</h2>
<p>Angel Faus has been working on the regex engine and provided a patch
for it, &quot;designed with the single goal of seriously cheating for
speed.&quot;. Dan applauded and claimed to be feeling &quot;decidedly
superfluous&quot;, but wondered if Angel could use the -u or -c switches to
diff next time.</p>
<p>Also on the regex front, Stephen Rawls offered some better
documentation of the regex subsystem.</p>
<p><a href='http://rt.perl.org/rt2/Ticket/Display.html?id=15797' target='_blank'>rt.perl.org</a></p>
<p><a href='http://rt.perl.org/rt2/Ticket/Display.html?id=15876' target='_blank'>rt.perl.org</a></p>
<a name='ARM JIT v2'></a><h2>ARM JIT v2</h2>
<p>Nicholas Clark released a &quot;very minimal&quot; ARM JIT framework. The
initial version only JITed a small number of trivial ops, but it's
the framework that was important. Daniel Grunblatt sent Nicholas a
copy of the work he'd done in that area and we ended up with a new,
unified patch that handled a whole lot more ops, and which wondered
where the PPC JIT had got to. It turns out that Daniel is working on
that too. Go Daniel.</p>
<p>On the subject of JITs, Jarkko Hietaniemi, fresh from his trials as
the perl 5.8 pumpking popped up with a survey of the state of the JIT
art in parrot. Apparently we're still missing PPC and POWER, MIPS,
HPPA and IA64. Jarkko intends to &quot;do nothing on these except raise
gui^H^H^Hawareness :-)&quot;. Which is nice of him.</p>
<p>Nicholas also wondered if he was &quot;allowed to write ancillary functions
I want the JIT to call in assembler?&quot; Dan reckoned that, in a JIT,
&quot;evil things for speed reasons are almost obligatory.&quot;</p>
<p><a href='http://groups.google.com/groups?selm=20020729220305.GC354@Bagpuss.unfortu.net' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=20020803214000.GD7878@Bagpuss.unfortu.net' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=20020730200100.M22826@alpha.hut.fi' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=20020801204207.GB378@Bagpuss.unfortu.net' target='_blank'>groups.google.com</a></p>
<a name='lexical scope ops, test and example'></a><h2>lexical scope ops, test and example</h2>
<p>Jonathan Sillito offered a patch which implements lexical pads and
some ops to manipulate them. Stephen Rawls pointed out a bug in the
implementation, and Dan agreed that it was a bug but that once that
was fixed the patch should go in because &quot;it gets a good chunk of the
semantics we need.&quot; (Speaking as someone who keeps making noises about
implementing Scheme in parrot, having parrot native lexicals will be
a *huge* win.). So, Jonathan fixed it, and Melvin applied it.</p>
<p>This led Jerome Vouillon to wonder if we actually needed explicit
lexicals and scratchpads. The thread is rather tricky to summarise so
I'll just point you at it. However Dan chimed in to say that, for now
at least, he'd rather keep the separate interface to lexicals and
globals because it would make changing the implementation possible
without breaking existing bytecode.</p>
<p><a href='http://rt.perl.org/rt2/Ticket/Display.html?id=15800' target='_blank'>rt.perl.org</a></p>
<p><a href='http://rt.perl.org/rt2/Ticket/Display.html?id=15846' target='_blank'>rt.perl.org</a></p>
<p><a href='http://groups.google.com/groups?selm=20020731162554.GA6430@strontium.pps.jussieu.fr' target='_blank'>groups.google.com</a></p>
<a name='Unifying PMCs and Buffers for GC.'></a><h2>Unifying PMCs and Buffers for GC.</h2>
<p>Dan has accepted that we need to unify PMCs and strings/buffers for GC
purposes, and asked for volunteers. Mike Lambert stepped forward (or
maybe everyone else took one pace back). Again, this thread is hard to
summarise because it's so information dense. If you're interested you
should read the whole thread.</p>
<p><a href='http://groups.google.com/groups?selm=a05111b01b96dcf8d857a@' target='_blank'>groups.google.com</a>[63.120.19.221]</p>
<a name='Negative indices in arrays.'></a><h2>Negative indices in arrays.</h2>
<p>Stephen Rawls wondered about what happened when someone did <code>@foo =
(1,2); @foo[-3]</code>. This is an error in Perl5. As Dan put it, so
elegantly, &quot;Larry? Semantic call for you on the white telephone.&quot;
Larry has, so far, not responded.</p>
<p><a href='http://groups.google.com/groups?selm=20020801134633.57340.qmail@web14501.mail.yahoo.com' target='_blank'>groups.google.com</a></p>
<a name='resize_array (PerlArray)'></a><h2>resize_array (PerlArray)</h2>
<p>Aldo Calpini discovered that the parrot equivalent of <code> @foo = (1,2);
print @foo[9999];</code> would magically extend <code>@foo</code> to contain 10000
elements. Which isn't exactly ideal. This span off into a discussion
of autovivification, especially with nested arrays. Dan pointed out
that Perl 5's current behaviour when you do, say, <code>print
$a[10000][0]</code> is an artifact of the way multi dimensional arrays work
in Perl 5, and that most people would be happy if it went away in Perl
6. (Personally, I'd be happy if it went away in perl 5.9, but that's
another mailing list.)</p>
<p><a href='http://groups.google.com/groups?selm=180-1602283812.20020801172812@alos.it' target='_blank'>groups.google.com</a></p>
<a name='sub/continuation/dlsym/coroutine cleanup'></a><h2>sub/continuation/dlsym/coroutine cleanup</h2>
<p>Sean O'Rourke offered a patch which &quot;implements native extensions and
continuations as PMCs. It also cleans up the existing Sub and
Coroutine types&quot;, and removes a load of now obsolete ops that are now
handled through <code>invoke</code>. For some bizarre reason, SpamAssassin
thought his message was infected with Klez. Which isn't good.</p>
<p>The patch doesn't handle lexicals automatically yet. This may be good
or bad, we haven't reached consensus yet, and Dan hasn't settled on a
position either. Jerome Vouillon suggested a couple of changes, and
Sean O'Rourke agreed. Nicholas Clark wondered if this meant that loop
variables would only have to be allocated once; which looked nice.</p>
<p><a href='http://groups.google.com/groups?selm=Pine.GSO.4.33.0207302056330.12563-101000@beowulf.ucsd.edu' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, over in perl6-language'></a><h2>Meanwhile, over in perl6-language</h2>
<p>Phew. I always like it when I get to switch lists. It generally means
the finish line is in sight because perl6-language is usually a lot
quieter than p6i. (My how times have changed; I'm <i>really</i> glad I
wasn't writing the summaries back in the RFC days...)</p>
<a name='&quot;A light and refreshing summer fruit salad&quot;'></a><h2>&quot;A light and refreshing summer fruit salad&quot;</h2>
<p>That's how Miko O'Sullivan described his collection of ideas for the
Perl6 language. At least one of his proposals is already implemented
in perl5, but it still sparked a lively and generally interesting
thread. Especially when Damian started doing tricks with operator
definitions and grammar munging. Trey Harris proposed the rather
wonderful <code>no strict 'physics'</code>, which made <i>me</i> smile. Damian also
points out in this thread that the new, Perl6 word for `regex' will be
`rule' because, well, they're no longer regular, and they'll often
live in grammars.</p>
<p>Damian also mentioned that there was some thought of making composite
objects the topic within their subscript brackets, which would enable
some powerful slicing operations: <code>@public = %hash{ /^(&lt;-[_]+&gt;.*)/
};</code> anyone? There's some debate as to whether this would violate the
principle of least surprise though.</p>
<p><a href='http://groups.google.com/groups?selm=001d01c239a7$18517b30$040a0a0a@mosullivan' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=3D4B05E4.4050909@conway.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=3D49E127.302@conway.org' target='_blank'>groups.google.com</a></p>
<a name='Use of regular expressions on non strings.'></a><h2>Use of regular expressions on non strings.</h2>
<p>David Whipp wondered about using regular expressions (that's `rules'
now, of course...) on none strings, and wondered about using them to
query databases. (It would appear to me that, if you tied a database
to a hash, then Damian's proposed slicing syntax above would be a
start down that road, implementation could be tricky though...)</p>
<a name='In Brief...'></a><h2>In Brief...</h2>
<p>Sean O'Rourke told us that the his perl6 parser/compiler/all round
groovy thing, now works with perl 5.005_03 and with 5.6.1, but that it
didn't play well with 5.6.0.</p>
<p>Remember RECALL, and how it got renamed to AVOID? Well, actually, it
didn't. It got renamed to AGAIN, but Tanton Gibbs had a brain fade
when he typed the subject line of the submitted patch.</p>
<p><a href='http://rt.perl.org/rt2/Ticket/Display.html?id=15802' target='_blank'>rt.perl.org</a> -- Stephen
Rawls offers patches for <code>genclass.pl</code> and introduces an
<code>addclass.pl</code> script, intended to make the business of setting up a
new PMC type that much easier.</p>
<p><a href='http://groups.google.com/groups?selm=019501c23790$cc614420$0600a8c0@MLAMBERT' target='_blank'>groups.google.com</a>
Michel Lambert offered a 'Getting Started' FAQ</p>
<p>Simon Glover posted some code that makes GC segfault. Richard Cameron
fixed it. Mike Lambert applied it.</p>
<p>Angel Faus offered a patch to make imcc take into account the
data-flow info it gathered. Melvin Smith applied it.</p>
<p>Jarkko has been doing sterling work on getting parrot to compile on
SGIs, and generally tidying up code.</p>
<p>Brian Ingerson patched <code>assemble.pl</code> to allow it to accept code on
STDIN. Applied.</p>
<p>Jason Gloudon offered a patch which revised the JIT docs, and added
some stuff to the SPARC JIT overview. He also changed the way the x86
JIT invoked functions. Applied</p>
<p>Josef H&ouml;&ouml;k offered a matrix implementation. Warnock's
dilemma applies. You can find the patch at
<a href='http://rt.perl.org/rt2/Ticket/Display.html?id=15923' target='_blank'>rt.perl.org</a> if you're
interested.</p>
<p>Sean O'Rourke pointed to
<a href='http://lambda.weblogs.com/discuss/msgReader$3850.' target='_blank'>lambda.weblogs.com</a></p>
<p>Aldo Calpini offered docs for the parrot debugger.
<a href='http://groups.google.com/groups?selm=35-1525343312.20020802145032@alos.it' target='_blank'>groups.google.com</a></p>
<p>&quot;Mr. Nobody&quot; has patched things to allow Configure to run on Windows
9x. Applied.</p>
<p>Nicholas Clark wondered what to do about right shifting signed
integers. Nicholas reckoned that sign extending signed types when
doing right shifts was the Right Thing.</p>
<p>Daniel Grunblatt has committed a register allocator for the JIT. Not
optimal yet, but it's a start. Nicholas Clark was impressed. So were
the rest of us, probably.</p>
<p>Simon Glover has added some more tests of the GC ops. Applied.</p>
<p>Mark J. Reed gave the language crowd and update on Unicode, UTF-16 and
Java. <a href='http://groups.google.com/groups?selm=20020731202640.GB25676@charm.turner.com' target='_blank'>groups.google.com</a></p>
<p>Leon Brocard, who I thought I wasn't going to be able to mention this
week, announced the publication of his targeting parrot slides to the
list. But I told you about those last week, so maybe I shouldn't have
mentioned Leon this week after all. Hmm...</p>
<a name='Who's who in Perl6'></a><h2>Who's who in Perl6</h2>
<ul>
<li><a name='Who are you?'></a>Who are you?</li>
<p>Josef H&ouml;&ouml;k</p>
<li><a name='What do you do for/with Perl 6?'></a>What do you do for/with Perl 6?</li>
<p>Working with matrix and multidimensional array implementation in
parrot.</p>
<li><a name='Where are you coming from?'></a>Where are you coming from?</li>
<p>Sweden</p>
<li><a name='When do you think Perl 6 will be released?'></a>When do you think Perl 6 will be released?</li>
<p>1 year</p>
<li><a name='Why are you doing this?'></a>Why are you doing this?</li>
<p>It's fun and i learn a lot.</p>
<li><a name='You have 5 words. Describe yourself.'></a>You have 5 words. Describe yourself.</li>
<p>icant, that was only 2words</p>
<li><a name='Do you have anything to declare?'></a>Do you have anything to declare?</li>
<p>nope</p>
</ul>
<a name='Acknowledgements, threats and funding drives.'></a><h1>Acknowledgements, threats and funding drives.</h1>
<p>This summary was once again prepared with the aid of GNER tea, and
with the unwitting assistance of the fine folks at Google, who
provided me with a way of generating links to articles that <i>don't</i>
require me to surf the fine web in order to work out what the URLs
should be.</p>
<p>Once again, if you didn't like this, don't read it. If you did,
consider donating some of your hard earned money (or your employer's
hard earned money) to the Perl Foundation at
<a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> and help support the ongoing
development of Perl 6. If you're going to donate $100 or more in
response to this summary, please let me know and I'll give you a
mention in the acknowledgements. If you're going to donate $250 or
more, again, let me know and you'll get a &quot;This week's summary was
sponsored by Joe Bloggs&quot; (for appropriate values of &quot;Joe Bloggs&quot;) at
the top of the summary.</p>
<p>Sadly, nobody has yet sent me a T?iBook, which is probably a good
thing; I'd only want a pony next.</p>
<p>Google is almost certainly a trademark. I should probably mention that
shouldn't I?</p>
</div>
